package ar.edu.ufasta.presupuestos.servicios.persistencia;

import java.util.ArrayList;
import java.util.List;

import ar.edu.ufasta.presupuestos.logica.entidades.presupuesto.Presupuesto;
import ar.edu.ufasta.presupuestos.servicios.presupuesto.PresupuestoService;
import ar.edu.ufasta.presupuestos.servicios.presupuesto.PresupuestoServiceFacade;



public class PersistenceTest {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {

		//ArticuloComplejo complejo = (ArticuloComplejo) PersistenceFacade.getInstance().get(new ObjectID(1), ArticuloComplejo.class);
		
		//System.out.println(complejo.getNombre());
		
//		PersistenceFacade pf = PersistenceFacade.getInstance();
//		
//		
//		ArticuloSimple simple1 = new ArticuloSimple();
//		simple1.setNombre("Simple01");
//		simple1.setDescripcion("esto es un arti simple");
//		simple1.setTipoArticulo((TipoArticulo) pf.get(new ObjectID(1), TipoArticulo.class));
//		
//		ArticuloSimple simple2 = new ArticuloSimple();
//		simple2.setNombre("Simple02");
//		simple2.setDescripcion("esto es un arti simple2");
//		simple2.setTipoArticulo((TipoArticulo) pf.get(new ObjectID(1), TipoArticulo.class));
//		
//		simple1 = (ArticuloSimple) pf.get(new ObjectID(7), ArticuloSimple.class);
//		simple2 = (ArticuloSimple) pf.get(new ObjectID(9), ArticuloSimple.class);
//		
//		ArticuloComplejo complejo = new ArticuloComplejo();
//		//complejo.setCosto(20l);
//		//complejo.setCostoUnitario(20l);
//		complejo.setNombre("Simple02");
//		complejo.setDescripcion("esto es un arti simple2");
//		complejo.setTipoArticulo((TipoArticulo) pf.get(new ObjectID(2), TipoArticulo.class));
//		
//		
//		
//		DetalleArticulo datalle1 = new DetalleArticulo();
//		datalle1.setArticulo(simple1);
//		datalle1.setCantidad(3);
//		
//		DetalleArticulo datalle2 = new DetalleArticulo();
//		datalle2.setArticulo(simple2);
//		datalle2.setCantidad(9);
//		
////		complejo.addListadoArticulos(datalle1);
////		complejo.addListadoArticulos(datalle2);
//		
//		pf.put(complejo);
//		
////		Articulo art = (Articulo) PersistenceFacade.getInstance().get(new ObjectID(1), Articulo.class);
////		Map<String, String> m= new HashMap<String, String>();
////		m.put("nombre", "'p%'");
////		List<?> lista = PersistenceFacade.getInstance().search(Articulo.class, m);
////		
////		for (Object object : lista) {
////			System.out.println(((Articulo) object).getNombre());
////		}
////		
////		
////		Articulo simple = new ArticuloSimple();
////		simple.setId(new ObjectID(17));
////		simple.setDescripcion("Texxo");
////		simple.setNombre("Juan Pablo");
////		
////		PersistenceFacade.getInstance().put(simple);
////		
////		PersistenceFacade.getInstance().remove(new ObjectID(17), ArticuloSimple.class);
//		
////		System.out.println(ArticleColumnNames.ARTICLE_TYPE.getColumnName());
//		
////		try {
////			BeanInfo info = Introspector.getBeanInfo(Articulo.class);
////			
////			for(PropertyDescriptor descriptor: info.getPropertyDescriptors()){
////				//System.out.println(descriptor.getName());
////			}
////			System.out.println(simple.getClass().getName());
////			Class c = Class.forName(simple.getClass().getName());
////			Method m = c.getMethod("getNombre");
////			Object o = m.invoke(simple,null);
////			System.out.println((String) o);
////		} catch (Exception e) {
////			e.printStackTrace();
////		}

//		Proveedor p = new Proveedor();
//		p.setClassName("TextFileAttachBuilder");
//		
//		RemitoCompra remito = (RemitoCompra) PersistenceFacade.getInstance().get(new ObjectID(1), RemitoCompra.class);
//		
//		//AttachFileBuilderClassLoader.getInstance().getAttachFile(remito, p);
//		
////		TextFileAttachBuilder t = new TextFileAttachBuilder();
////		t.buildAttachFile(remito);
//		
//		MailTransportService.getInstance().sendMail(remito);
		
		
//		String name = ReportServiceFacade.getInstance().buildRankingClientesReport();
//		Frame frame = new Frame("PDF Viewer");
//		frame.setLayout(new BorderLayout());
//		Viewer viewer = new Viewer();
//		frame.add(viewer, BorderLayout.CENTER);
//		InputStream input =
//		    new FileInputStream (new File(
//		        name));
//		viewer.setDocumentInputStream(input);
//		viewer.activate();
//		frame.setSize(400, 500);
		///frame.pack(); 
//		frame.show();
		
		
		Presupuesto presupuesto = (Presupuesto) PersistenceFacade.getInstance().get(new ObjectID(24), Presupuesto.class);
		Presupuesto presupuesto2 = (Presupuesto) PersistenceFacade.getInstance().get(new ObjectID(25), Presupuesto.class);
		List<Presupuesto> list = new ArrayList<Presupuesto>();
		list.add(presupuesto);
		list.add(presupuesto2);
		PresupuestoService service = new PresupuestoService();
		service.Resolver(list);
		
	}

}
